﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace timetabling.core
{
    /// <summary>
    /// Clase que contendrá la información del centro
    /// </summary>
    public class Center : Basic
    {
        #region Estado

        #region variables miembro

        /// <summary>
        /// Definimos una lista vacía
        /// </summary>
//        private IList<Classroom> classrooms = new List<Classroom>();
        // bajo demanda, si no hay datos para guardar será null
        private IList<Classroom> classrooms = null;
        private IList<Branch> branch = null;
        private IList<User> user = null;


        #endregion

        

        /// <summary>
        /// Nombre del centro
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// CIF del centro
        /// </summary>
        public string CIF { get; set; }

        /// <summary>
        /// Dirección del Centro
        /// </summary>
        public string Address { get; set; }

        /// <summary>
        /// Ciudad del Centro
        /// </summary>
        public string City { get; set; }

        /// <summary>
        /// Correo del centro
        /// </summary>
        public string Email { get; set; }

        /// <summary>
        /// I=Intefaz
        /// Es una colección de aulas.
        /// Lista de aulas del centro.
        /// </summary>
        public IList<Classroom> Classrooms {
            get {
                if(classrooms == null){
                    classrooms = new List<Classroom>();
                }
                return classrooms;
            }
            set {
                classrooms = value;
            }
        }

        /// <summary>
        /// I=Intefaz
        /// Es una colección de especialidades.
        /// Lista de especialidades del centro.
        /// </summary>
        public IList<Branch> Branchs
        {
            get
            {
                if (branch == null)
                {
                    branch = new List<Branch>();
                }
                return branch;
            }
            set
            {
                branch = value;
            }
        }

        /// <summary>
        /// I=Intefaz
        /// Es una colección de usuarios.
        /// Lista de usuarios del centro.
        /// </summary>
        public IList<User> Users
        {
            get
            {
                if (user == null)
                {
                    user = new List<User>();
                }
                return user;
            }
            set
            {
                user = value;
            }
        }
        


        #endregion

        


    }
}
